#pragma warning(disable:4251)
#include <iostream>
#include <sstream>
#include <fstream>
#include <cstdlib>
#include <cstdio>
#include <cstdarg>

#if defined(__GNUC__)

#include <unistd.h>
#include <dirent.h>

#endif



#include <signal.h>
#include <sys/types.h>
#include <sys/stat.h>


#include <cstring>
#include <map>
#include <vector>
#include <stack>

#include <ctime>

typedef std::map<unsigned int, std::string> mapIntStr;
typedef std::map<std::string, std::string> mapStrStr;
typedef std::map<unsigned int, mapIntStr> mapIntIntStr;
typedef std::map<unsigned int, mapStrStr> mapIntStrStr;
typedef std::map<std::string, mapIntStr> mapStrIntStr;
typedef std::map<std::string, mapStrStr> mapStrStrStr;
typedef std::map<std::string, mapStrIntStr> mapStrStrIntStr;

typedef std::vector<std::string> vectorStr;
typedef std::vector<const char*> vectorConstChar;
typedef std::vector<char> vectorCh;
typedef std::vector<std::string> vecStr;
typedef std::vector<const char*> vecConstChar;
typedef std::vector<char> vecCh;

typedef std::stack<char> stackCh;
typedef std::stack<const char*> stackConstChar;
typedef std::stack<char> staCh;
typedef std::stack<const char*> staConChar;


